package com.orangelife.webservice.service.statistics;

import javax.jws.WebParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.orangelife.webservice.service.statistics.entity.StatisticsDto;

public interface IStatisticsWebService {
	/***
	 * 根据年份统计小区缴费总览情况
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/commPay")
	@Produces({ "application/json" })
	public Response statisticFeeDetail(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 时间段内小区 各月份收费统计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/payRateByDate")
	@Produces({ "application/json" })
	public Response payRateByDate(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 查询业主欠费信息 按
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/ownerBillInfo")
	@Produces({ "application/json" })
	public Response ownerBillInfo(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 按月统计缴费信息
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/paybillbyMon")
	@Produces({ "application/json" })
	public Response paybyMon(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 按缴费信息明细
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/paybillDetail")
	@Produces({ "application/json" })
	public Response paybillDetail(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 按月统计缴费信息总计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/paybillbyMonAll")
	@Produces({ "application/json" })
	public Response paybyMonAll(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 按月统计缴费信息总计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getCommOweInfoDetail")
	@Produces({ "application/json" })
	public Response getCommOweInfoDetail(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 按月统计缴费信息总计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getCommOweInfo")
	@Produces({ "application/json" })
	public Response getCommOweInfo(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 欠费信息总计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getCommOweInfoAll")
	@Produces({ "application/json" })
	public Response getCommOweInfoAll(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 单小区业主欠费信息
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getOwerOweFeeInfo")
	@Produces({ "application/json" })
	public Response getOwerOweFeeInfo(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 单小区业主欠费信息总计
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getOwerOweFeeInfoAll")
	@Produces({ "application/json" })
	public Response getOwerOweFeeInfoAll(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	/***
	 * 单小区类目信息
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */

	@POST
	@Path("/getFeeTypeCode")
	@Produces({ "application/json" })
	public Response getFeeTypeCode(@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	// /**
	// * 功能:下载缴费明细表
	// * */
	// @POST
	// @Path("/downLoadScheduleOfFeess")
	// @Produces({ "application/json" })
	// public Response downLoadScheduleOfFees(
	// @Context HttpServletRequest servletRequest,
	// @Context HttpServletResponse servletResponse,
	// @WebParam StatisticsDto st) throws Exception;

	/**
	 * 功能:下载缴费明细表
	 * */
	@POST
	@Path("/downLoadScheduleOfFeess")
	@Produces({ MediaType.MULTIPART_FORM_DATA })
	public Response downLoadScheduleOfFees(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载缴费明细表（月度明细）
	 * */
	@POST
	@Path("/downLoadScheduleOfFeesDetails")
	@Produces({ "application/json" })
	public Response downLoadScheduleOfFeesDetails(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载开单明细表
	 * */
	@POST
	@Path("/downLoadBillingSchedule")
	@Produces({ "application/json" })
	public Response downLoadBillingSchedule(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载欠费统计表（单小区明细-按筛选条件导出）/ 欠费统计表（单小区明细-合并月份总计） 按传入的条件
	 * */
	@POST
	@Path("/downTuitionTablesBySingleCell")
	@Produces({ "application/json" })
	public Response downTuitionTablesBySingleCell(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载欠费统计表（单小区明细-拆分月份显示）
	 * */
	@POST
	@Path("/downTuitionTablesBySingleCellAndSpiltMonth")
	@Produces({ "application/json" })
	public Response downTuitionTablesBySingleCellAndSpiltMonth(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载欠费统计表（多个小区总计）
	 * */
	@POST
	@Path("/downTuitionTablesByCells")
	@Produces({ "application/json" })
	public Response downTuitionTablesByCells(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载收费率统计表（单小区）
	 * */
	@POST
	@Path("/downLoadRateTablesSingleCell")
	@Produces({ "application/json" })
	public Response downLoadRateTablesSingleCell(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载收费率统计表（单小区-按类目划分）
	 * */
	@POST
	@Path("/downLoadRateTableSingleCellByCategory")
	@Produces({ "application/json" })
	public Response downLoadRateTableSingleCellByCategory(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载收费率统计表（单小区-按月份划分）
	 * */
	@POST
	@Path("/downLoadRateTableSingleCellByMonth")
	@Produces({ "application/json" })
	public Response downLoadRateTableSingleCellByMonth(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	/**
	 * 功能:下载收费率统计表（多小区）
	 * */
	@POST
	@Path("/downLoadRateTableCells")
	@Produces({ "application/json" })
	public Response downLoadRateTableCells(
			@Context HttpServletRequest servletRequest,
			@Context HttpServletResponse servletResponse,
			@FormParam("") StatisticsDto st) throws Exception;

	@POST
	@Path("/commPayBycomm")
	@Produces({ "application/json" })
	public Response statisticFeeDetailBycomm(
			@Context HttpServletRequest servletRequest,
			@WebParam StatisticsDto st) throws Exception;

	@GET
	@Path("/getMonthPay")
	@Produces({ "application/json" })
	public Response getMonthPay(@Context HttpServletRequest servletRequest,

	@QueryParam("commID") String commID,
			@QueryParam("apartmentNum") String apartmentNum,
			@QueryParam("apartmentType") String apartmentType,
			@QueryParam("startDate") String startDate,
			@QueryParam("endDate") String endDate,
			@QueryParam("pageIndex") String pageIndex,
			@QueryParam("pageSize") String pageSize) throws Exception;

}
